With the increasing use of electronic devices utilizing integrated circuits to provide different types of information for a variety of different applications, there has been an increasing need to adequately protect sensitive or critical information that may be stored within an electronic device to limit access to such information to only such other devices that have permission to access such information. Some examples of applications include the authentication of devices, protection of confidential information within a device, and securing a communication between two or more devices.
A physically unclonable function (PUF) is a physical structure typically within an integrated circuit that provides a number of specific outputs or responses in response to specific inputs or challenges to the PUF. Each PUF provides a discrete and unique set of responses to specific challenges, which makes PUFs suitable for use in hiding keying material in semiconductor devices for encrypting confidential information for such devices.
One issue associated with PUFs is that environmental or other conditions (e.g., temperature and/or voltage fluctuations) can change the output/response of the PUF in response to the same input/challenge. Therefore, a custom error correcting code (ECC) table must be established for each PUF to correct the output values based upon such conditions and to ensure that the PUF response value is consistent for a specific challenge. When a PUF is formed as part of an IC for a semiconductor chip to be used in a device, a chip manufacturer can potentially determine the ECC values for a series of challenges during manufacture of the chip. Thus, it is possible for the keying material provided by a PUF for a semiconductor chip of a device to be determined by a third party vendor during the manufacturing process of the device.
Another issue associated with utilizing a PUF to provide keying information is that typically the amount of keying material desirable for encrypting information within a device is larger than the amount of keying material that can be provided by a reasonably sized PUF structure.